﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MJM.RPP.EntidadesNegocio;
using MJM.Principal;
using MJM.SPP.EntidadesNegocio;
using MJM.SCA.EntidadesNegocio;
using MJM.SPP.ComponentesNegocio;

namespace wRegPadron
{
    public partial class frmNuevaVentana : System.Web.UI.Page
    {
        //private static String Direccion="";
        public AudiService.wsAud_Acc servicio = new AudiService.wsAud_Acc();

        private String ObtieneIP()
        {
            string ipusuario = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            if (ipusuario == null)
                ipusuario = "";
            return ipusuario;
        }

        private void InsertarLog(String prm2, String prm3, string parametros, int resultado, string excepcion)
        {
            LogTramiteEN objLogTramiteEN = new LogTramiteEN();
            string mes, dia;
            if (DateTime.Now.Month < 10)
                mes = "0" + DateTime.Now.Month.ToString();
            else mes = DateTime.Now.Month.ToString();

            if (DateTime.Now.Day < 10)
                dia = "0" + DateTime.Now.Day.ToString();
            else dia = DateTime.Now.Day.ToString();
            objLogTramiteEN.LOGAW_chFECMOD = DateTime.Now.Year.ToString() + mes + dia;
            objLogTramiteEN.LOGAW_chFECREG = DateTime.Now.ToShortDateString();
            objLogTramiteEN.LOGAW_chHORREG = DateTime.Now.ToShortTimeString();
            objLogTramiteEN.LOGAW_chIPCLIEN = ObtieneIP();
            objLogTramiteEN.LOGAW_chPARDOS = prm2;
            objLogTramiteEN.LOGAW_chPARUNO = Session["Usuario"].ToString();
            objLogTramiteEN.LOGAW_chPARTRE = prm3;
            objLogTramiteEN.LOGAW_inHORMOD = DateTime.Now.Hour;
            objLogTramiteEN.LOGAW_chNOMAPL = "Padrón";
            servicio.Inser_Acc(Session["Usuario"].ToString(), "Gestión", prm2, prm3, parametros, resultado, excepcion, ObtieneIP());
        }

        public void SetDireccion()
        {
            hfDireccion.Value = Session["pagina"].ToString();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    string fecha = "";
                    string mes, dia;
                    int idOpcion;
                    string nombre = "";
                    string NombreOpcion = "";
                    int idtipo = Convert.ToInt32(Request.QueryString["Tip"].ToString());
                    string aux = Request.QueryString["idCtrl"].ToString();
                    if (DateTime.Now.Month < 10)
                        mes = "0" + DateTime.Now.Month.ToString();
                    else
                        mes = DateTime.Now.Month.ToString();
                    if (DateTime.Now.Day < 10)
                        dia = "0" + DateTime.Now.Day.ToString();
                    else
                        dia = DateTime.Now.Day.ToString();
                    fecha = DateTime.Now.Year.ToString() + mes + dia + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
                    int digitos = 0;
                    digitos = Convert.ToInt32(aux.Substring(aux.Length - 1, 1));
                    string valor = aux.Substring(aux.Length - digitos - 1, digitos);
                    idOpcion = Convert.ToInt32(valor);
                    if (idtipo == 1)
                    {
                        SubOpcionCN objSubOpcionCN = new SubOpcionCN();
                        SubOpcionEN objSubOpcionEN = new SubOpcionEN();
                        objSubOpcionEN = objSubOpcionCN.Obtener(idOpcion);
                        NombreOpcion = objSubOpcionEN.SUBOPT_chNOMSOP;
                        nombre = objSubOpcionEN.SUBOPT_chDIRURL;
                    }
                    else
                    {
                        ProgramaEN objProgramaEN = MediadorCN.GetPrograma().Obtener(idOpcion);
                        nombre = objProgramaEN.Enlace;
                        NombreOpcion = objProgramaEN.PROMUN_chNOMPRO;
                    }
                    try
                    {
                        PersonaE objPersona = MediadorCN.GetPersona().ObtenerPerTramite(Session["Usuario"].ToString());
                        string dire = nombre + "?Pass=" + Session["Pass"].ToString() + "&User=" + Session["Usuario"].ToString() + "&fec=" + fecha + "&Time=20" + "&UsuLog=" + Session["UsuLog"].ToString()+"&CODPRO=" + objPersona.EMP_inCODPRO.ToString();
                        string val1, val2;
                        dire = dire.Replace('?', '&');
                        val1 = dire.Insert(dire.IndexOf('&'), "?");
                        val2 = val1.Remove(val1.IndexOf('&'), 1);
                        InsertarLog(NombreOpcion, "Ingresar", "", 1, "");
                        Response.Redirect(val2,false);
                    }
                    catch (Exception ex)
                    {
                        InsertarLog(NombreOpcion, "Ingresar", ex.StackTrace, 1, ex.Message);
                        //Session.Abandon();
                        Response.Redirect("Login.aspx");
                    }
                }
                catch(Exception ex)
                {
                    InsertarLog("Página gestión", "Ingresar", ex.StackTrace, 1, "Error al cargar la página");
                    Response.Redirect("Login.aspx");
                }
            }
        }
    }
}